/*
 * Shoot.h
 *
 *  Created on: 25/05/2011
 *      Author: DessaVida
 */

#ifndef SHOOT_H_
#define SHOOT_H_

#include "Component.h"
#include "util/Timer.h"
#include "math/Point2D.h"
#include "entity/item/Ammo.h"

class Shoot : public Component{
private:
	int shootSpeed;
	int baseShootSpeed;
	int rechargeSpeed;
	int baseRechargeSpeed;

	bool active;

	Ammo*  ammo;

	Point2D shootPoint;
	Point2D shootCenter;
public:
	Timer *shootTimer;
	Timer *rechargeTimer;
    Ammo *getAmmo() const;
    void setAmmo(Ammo *ammo);

    Shoot(int id, int shootSpeed, int rechargeSpeed);
    virtual ~Shoot();

    bool getActive() const;
    int getBaseShootSpeed() const;
    int getShootSpeed() const;
    void setActive(bool active);
    void setBaseShootSpeed(int baseShootSpeed);
    void setShootSpeed(int shootSpeed);
    int getBaseRechargeSpeed() const;
    void setBaseRechargeSpeed(int baseRechargeSpeed);
    int getRechargeSpeed() const;
    void setRechargeSpeed(int rechargeSpeed);
    Point2D getShootPoint() const;
    void setShootPoint(Point2D pos);
    Point2D getPoint();
    Point2D getShootCenter() const;
    void setShootCenter(Point2D shootCenter);
};

#endif /* SHOOT_H_ */
